/*
 * Singularity Engine
 * Copyright (C) 2010 Vyacheslav Vorobyov, All rights reserved.
 * See LICENSE for full license information.
 */

package org.singularity.mapred;

import org.singularity.io.DME;
import org.singularity.io.Input;

/**
 * This interface introduces a notion of data input as a 
 * specific source element of a cascade. This is a terminal 
 * element that injects DMEs to a cascade, i.e. this is an 
 * entry point of DMEs, or connection point with some system 
 * firing DMEs. 
 * 
 * @author vjache
 *
 * @param <VT> - a type of values(facts) incoming to the 
 * system through this input element.
 * 
 * @see DME
 * @see Source
 */
public interface InputElement<VT> extends Source {
	/**
	 * Returns an input stream factory.
	 * @see Input
	 */
	Input<VT> getInput();
}
